package com.scpii.api.persistence.user;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.scpii.api.domain.user.Users;

public interface UsersMapper {

	int deleteByPrimaryKey(Long id);

	int insert(Users record);

	int insertSelective(Users record);

	Users selectByPrimaryKey(Long id);

	int updateByPrimaryKeySelective(Users record);

	int updateByPrimaryKey(Users record);

	Users selectBySelective(Users record);

	/**
	 * 根据APPID来获取该应用下的所有用户ID
	 * 
	 * @param appId
	 *            应用ID
	 * @return 返回该应用下的所有用户ID
	 */
	List<Long> selectUserIdByAppId(Long appId);

	/**
	 * 根据用户名来反查用户ID，多个用户名使用","进行分隔
	 * 
	 * @param userNameList
	 *            用户名称list
	 * @param appId
	 *            应用Id
	 * @return
	 */
	List<Long> selectUserIdByUserName(@Param("list") List<String> list,
			@Param("appId") Long appId);

	/**
	 * @param id
	 * @param addPoints
	 */
	void updateRankPointById(@Param("id") Long id,
			@Param("addPoints") Integer addPoints);

	/**
	 * @param key
	 * @param valueStr
	 */
	void updateValueByColumnName(@Param("id") Long id,
			@Param("column") String column, @Param("value") String value);

	Map<String, String> selectByColumns(@Param("keys") String[] fieldUserKeys,
			@Param("userId") Long userId);
}